<?php

session_start();

header("Content-type: image/png");
//header('Content-Disposition: attachment; filename="' . session_id() . '.png"');

ob_start();

require("class.json.php");
require("class.imagr.php");

$json = $_GET["json"];
$imagem = $_GET["imagem"];


$json = stripslashes($json);
$js = new Services_JSON;
$resultado = $js->decode($json);
$arrR = converteJSON($resultado);


$imagr = new imagr;

if (!$img=$imagr->loadImage($imagem)) {
	die("Erro ao carregar imagem");
}

$i = 0;

if(count($arrR["edicao"]) > 0)
{
	foreach ($arrR["edicao"] as $edicao) {
	
		$acao = $edicao["acao"];
	
		switch ($acao) {
	
			case "recorte":
				$img = $imagr->recorta($img, $arrR["edicao"][$i]["parametros"]["x"], $arrR["edicao"][$i]["parametros"]["y"], $arrR["edicao"][$i]["parametros"]["w"], $arrR["edicao"][$i]["parametros"]["h"]);
				break;
	
			case "redimensionar":
				$img = $imagr->redimensiona($img, $arrR["edicao"][$i]["parametros"]["w"], $arrR["edicao"][$i]["parametros"]["h"]);
				break;
	
			case "girar":
				$img = $imagr->girar($img, $arrR["edicao"][$i]["parametros"]["a"]);
				break;
	
			case "colagem":
				$url = $arrR["edicao"][$i]["parametros"]["url"];
		
				$logo=$imagr->loadImage($url);
		
				$img = $imagr->logomarca($img, $logo, $arrR["edicao"][$i]["parametros"]["w"], $arrR["edicao"][$i]["parametros"]["h"], $arrR["edicao"][$i]["parametros"]["l"], $arrR["edicao"][$i]["parametros"]["t"], $arrR["edicao"][$i]["parametros"]["a"]);
				break;
	
			case "texto":
				$texto = $arrR["edicao"][$i]["parametros"]["texto"];
				$fonte = "fontes/verdana.ttf";
				$cor = array($img, $arrR["edicao"][$i]["parametros"]["r"], $arrR["edicao"][$i]["parametros"]["g"], $arrR["edicao"][$i]["parametros"]["b"]);
				$tamanho = $arrR["edicao"][$i]["parametros"]["tamanho"];
				$left = $arrR["edicao"][$i]["parametros"]["l"];
				$top = $arrR["edicao"][$i]["parametros"]["t"];
				$img = $imagr->texto($img, $texto, $fonte, $cor, $tamanho, $top, $left);
				break;
	
			case "flip":
				$img = $imagr->flip($img, $arrR["edicao"][$i]["parametros"]["direcao"]);
				break;
	
			case "contraste":
				$img = $imagr->contraste($img, $arrR["edicao"][$i]["parametros"]["quantidade"]);
				break;
	
			case "negativo":
				$img = $imagr->negativo($img);
				break;
	
			case "grayscale":
				$img = $imagr->grayscale($img);
				break;
				
			case "colorir":
				$img = $imagr->colorir($img, array("r"=>$arrR["edicao"][$i]["parametros"]["r"], "g"=>$arrR["edicao"][$i]["parametros"]["g"], "b"=>$arrR["edicao"][$i]["parametros"]["b"]));				
				break;
					
		}
	
	
		$i++;
	
	}
}

ob_end_flush();

imagepng($img, null, 0);
?>